package com.linkhub.oms.common.enums.logistic;

import com.google.common.collect.Lists;
import com.linkhub.oms.common.enums.IEnumConvert;
import lombok.AllArgsConstructor;
import lombok.Getter;

import java.util.List;

/**
 * @Description: 渠道可送达国家枚举
 * @Author: echo
 * @Date: 2024/5/30 13:45
 * @Version: 1.0
 */
@Getter
@AllArgsConstructor
public enum ChannelDeliverableCountryEnum implements IEnumConvert<String> {
    BKZXR("BKZXR", Lists.newArrayList("US", "CA", "DE", "GB", "FR", "IT", "ES", "AU", "PL", "AT")),
    BKPHR("BKPHR", Lists.newArrayList("US", "CA", "DE", "GB", "FR", "IT", "ES", "AU", "PL", "AT", "NL")),
    USBZPHR("USBZPHR", Lists.newArrayList("US")),
    THZXR("THZXR", Lists.newArrayList("US", "GB", "FR", "DE", "IT", "ES", "NL", "BE", "LU", "IE", "BG", "HR", "CZ", "EE", "FI", "HU", "LV", "LT", "MT", "PL", "PT", "RO", "SK", "SI", "SE", "AT", "DK", "ZA", "BR", "CA", "GR", "CH", "NO", "MX", "SG", "MY", "TH", "VN", "PH", "CL", "CO", "IL", "CY", "TR", "KR", "NZ", "PK", "NG", "GH", "UG", "KE", "TZ", "RW", "AO", "EG", "AE", "SA", "KW", "QA", "BH", "JO", "LB", "AU", "JP")),
    THPHR("THPHR", Lists.newArrayList("US", "GB", "FR", "DE", "IT", "ES", "NL", "BE", "LU", "IE", "BG", "HR", "CZ", "EE", "FI", "HU", "LV", "LT", "MT", "PL", "PT", "RO", "SK", "SI", "SE", "AT", "DK", "ZA", "BR", "CA", "GR", "CH", "NO", "MX", "SG", "MY", "TH", "VN", "PH", "CL", "CO", "IL", "CY", "TR", "KR", "NZ", "PK", "NG", "GH", "UG", "KE", "TZ", "RW", "AO", "EG", "AE", "SA", "KW", "QA", "BH", "JO", "LB", "AU", "JP")),
    MUZXR("MUZXR", Lists.newArrayList("US", "GB", "FR", "DE", "IT", "ES", "NL", "BE", "LU", "IE", "BG", "HR", "CZ", "EE", "FI", "HU", "LV", "LT", "PL", "PT", "RO", "SK", "SI", "SE", "AT", "DK", "GR", "CA", "NO", "IL", "NZ", "AE", "TH", "JP", "AU")),
    FZZXR("FZZXR", Lists.newArrayList("US", "GB", "FR", "DE", "IT", "ES", "AT", "AE", "SA", "KW", "QA", "BH", "JO", "LB", "JP", "AU")),
    CALPR("CALPR", Lists.newArrayList("CA")),

    ;

    private final String channelCode;

    private final List<String> countryCodes;

    @Override
    public String getCode() {
        return getChannelCode();
    }
}
